Groups in parallel the elements of a sequence according to a specified key selector function
and creates a result value from each group and its key. The keys are compared
by using a specified comparer.
Namespace:
System.Linq
Assembly:
System.Threading (in System.Threading.dll)
Syntax
Visual Basic (Declaration) |
---|
Public Shared Function GroupBy(Of TSource, TKey, TResult) ( _
source As ParallelQuery(Of TSource), _
keySelector As Func(Of TSource, TKey), _
resultSelector As Func(Of TKey, IEnumerable(Of TSource), TResult), _
comparer As IEqualityComparer(Of TKey) _
) As ParallelQuery(Of TResult) |
C# |
---|
public static ParallelQuery<TResult> GroupBy<TSource, TKey, TResult>(
ParallelQuery<TSource> source,
Func<TSource, TKey> keySelector,
Func<TKey, IEnumerable<TSource>, TResult> resultSelector,
IEqualityComparer<TKey> comparer
)
|
Parameters
- source
- Type: System.Linq..::.ParallelQuery<(Of <(TSource>)>)
A sequence whose elements to group.
- keySelector
- Type: System..::.Func<(Of <(TSource, TKey>)>)
A function to extract the key for each element.
- resultSelector
- Type: System..::.Func<(Of <(TKey, IEnumerable<(Of <(TSource>)>), TResult>)>)
A function to create a result value from each group.
- comparer
- Type: System.Collections.Generic..::.IEqualityComparer<(Of <(TKey>)>)
An IEqualityComparer{TKey} to compare keys.
Type Parameters
- TSource
- The type of the elements of source.
- TKey
- The type of the key returned by keySelector.
- TResult
- The type of the result value returned by resultSelector.
Return Value
An ParallelQuery<IGrouping<TKey, TResult>> in C# or
ParallelQuery(Of IGrouping(Of TKey, TResult)) in Visual Basic where each
IGrouping<(Of <(TKey, TResult>)>) object contains a collection of objects
of type
TResult and a key.
Exceptions
Exception | Condition |
---|
System..::.ArgumentNullException |
source or keySelector or
resultSelector is a null reference (Nothing in Visual Basic).
|
See Also